def rank_elements(lst):
    # 对列表进行排序，并保留索引
    sorted_lst = sorted(lst, reverse=True)
    
    # 返回每个元素在排序后的列表中的排名
    return [sorted_lst.index(x) + 1 for x in lst]

# 示例
lst = [50, 50, 40, 10, 20]
ranks = rank_elements(lst)
print(ranks)  # 输出：[1, 4, 2, 5, 3]
